home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / Makefile < prev   
Makefile  |  1994-12-23  |  5KB  |  208 lines

  1. ##
  2. ##  NeXT C Compiler Makefile.  
  3. ##
  4. ##  Ask Kresten if you have any torubles / questions.
  5. ##
  6.  
  7. #
  8. # ** MANUAL BUILDS **
  9. #
  10. # Use: 
  11. #    make debug TARGETS='i386 m68k ...'
  12. #
  13. # from this directory to do manual builds.  The build compiler(s) will
  14. # appear in ./obj/cc-<target>-on-<host>/ subdirectories of here.  Use
  15. # "./xgcc -B./" in there to run the specific compiler.  You can also
  16. # just cd to a specific ./obj subdirectory and type "make <foo>" to build
  17. # a specific program, like "cpp" or "cc1objplus".  
  18. #
  19. # The makefile will automatically make a clone of the latest binaries
  20. # the first time "make debug" is run.  The binaries are kept outside
  21. # of the revision control system.
  22.  
  23. #
  24. # ** AUTOMATIC BUILDS **
  25. #
  26. # Automatic builds strictly follow the RC makefile API standards.  However,
  27. # in order to do a full build, a bootstrap is needed.  To do this, simply
  28. # do "make bootstrap" on the build machine, and install the resulting
  29. # symbols in the BuildRoot.  Then, do an ordinary "make install". 
  30. #
  31.  
  32. TARGETS= m68k i386 hppa sparc
  33. HOSTS= `arch`
  34.  
  35. RC_ARCHS= $(HOSTS)
  36.  
  37. SRCROOT=.
  38.  
  39. SRC= `cd $(SRCROOT); pwd | sed s,/private,,`
  40. DSTROOT= $(SRC)/dst
  41. SYMROOT= $(SRC)/sym
  42. OBJROOT= $(SRC)/obj
  43.  
  44. ##
  45. ## build compilers for targets=$(TARGETS), and hosts=$(RC_ARCHS).
  46. ## bootstrap target must have been run before this.  
  47. ##
  48. debug: obj.clone 
  49.     ./build_gcc --thins \
  50.         --srcroot=$(SRC) \
  51.         --dstroot=$(DSTROOT) \
  52.         --objroot=$(OBJROOT) \
  53.         --symroot=$(SYMROOT) \
  54.         --cflags="$(RC_CFLAGS) -g" \
  55.         --hosts="$(RC_ARCHS)" \
  56.         --targets="$(TARGETS)"
  57.  
  58. obj.clone:
  59.     @root=$(OBJROOT); \
  60.     if ls -lgd $$root | egrep '^l'; then \
  61.       echo "============================================"; \
  62.       echo "== CLONING BINARIES, WILL TAKE A WHILE... =="; \
  63.       echo "============================================"; \
  64.       mv $$root $$root.lnk; \
  65.       mkdir $$root; cd $$root.lnk; \
  66.       find . -depth -print | cpio -pdl $$root; \
  67.     fi; \
  68.     touch obj.clone
  69.  
  70. obj.unclone:
  71.     root=$(OBJROOT); \
  72.     if ls -lgd $$root.lnk | egrep '^l'; then \
  73.       echo "============================================"; \
  74.       echo "==  REMOVING BINARIES, WILL TAKE A WHILE  =="; \
  75.       echo "============================================"; \
  76.       mv $$root $$root.tree; \
  77.       mv $$root.lnk $$root; \
  78.       /bin/rm -Rf $$root.tree; \
  79.     fi; \
  80.     /bin/rm -f obj.clone
  81.  
  82. config: 
  83.     ./build_gcc --configure \
  84.         --srcroot=$(SRC) \
  85.         --dstroot=$(DSTROOT) \
  86.         --objroot=$(OBJROOT) \
  87.         --symroot=$(SYMROOT) \
  88.         --cflags="$(RC_CFLAGS) -g" \
  89.         --hosts="$(RC_ARCHS)" \
  90.         --targets="$(TARGETS)"
  91.  
  92. build: build_bison build_c++filt
  93.     ./build_gcc --thins \
  94.         --srcroot=$(SRC) \
  95.         --dstroot=$(DSTROOT) \
  96.         --objroot=$(OBJROOT) \
  97.         --symroot=$(SYMROOT) \
  98.         --cflags="$(RC_CFLAGS) -g" \
  99.         --hosts="$(RC_ARCHS)" \
  100.         --targets="$(TARGETS)"
  101.  
  102. install: build install_bison install_c++filt
  103.     ./build_gcc --fats \
  104.         --srcroot=$(SRC) \
  105.         --dstroot=$(DSTROOT) \
  106.         --objroot=$(OBJROOT) \
  107.         --symroot=$(SYMROOT) \
  108.         --cflags="$(RC_CFLAGS)" \
  109.         --hosts="$(RC_ARCHS)" \
  110.         --targets="$(TARGETS)"
  111.     make installGNUsrc SRCROOT=$(DSTROOT)/NextDeveloper/Source/GNU
  112.     mkdirs $(DSTROOT)/usr/local/RelNotes
  113.     install -m 555 cc++ $(DSTROOT)/bin
  114.     install -m 555 ld++ $(DSTROOT)/bin
  115.     install -m 444 Compiler.rtf $(DSTROOT)/usr/local/RelNotes
  116.     install -m 444 CompilerPrivate.rtf $(DSTROOT)/usr/local/RelNotes
  117.  
  118. ##
  119. ## build compilers for target=$(RC_ARCHS), and host=`arch`
  120. ##
  121. bootstrap: build_bison
  122.     ./build_gcc --fats \
  123.         --srcroot=$(SRC) \
  124.         --dstroot=$(DSTROOT) \
  125.         --objroot=$(OBJROOT) \
  126.         --symroot=$(SYMROOT) \
  127.         --cflags="$(RC_CFLAGS)" \
  128.         --hosts=`arch` \
  129.         --targets="$(RC_ARCHS)"
  130.  
  131. clean: clean_bison
  132.     ./build_gcc --clean \
  133.         --srcroot=$(SRC) \
  134.         --dstroot=$(DSTROOT) \
  135.         --objroot=$(OBJROOT) \
  136.         --symroot=$(SYMROOT) \
  137.         --cflags="$(RC_CFLAGS)" \
  138.         --hosts="$(RC_ARCHS)" \
  139.         --targets="$(TARGETS)"
  140.  
  141.  
  142. installsrc: SRCROOT
  143.     mkdirs $(SRCROOT)/cc
  144.     if [ $(SRCROOT) != . ]; then \
  145.       tar cBf - `ls -1 | egrep -v '^(obj|dst|sym)$'` \
  146.          | (cd $(SRCROOT); tar xvf -); \
  147.     fi
  148.  
  149. installGNUsrc: SRCROOT
  150.     mkdirs $(SRCROOT)/cc
  151.     if [ $(SRCROOT) != . ]; then \
  152.       tar cBf - `ls -1 | egrep -v '^(obj|dst|sym|SGS)$'` \
  153.          | (cd $(SRCROOT); tar xvf -); \
  154.       chown -R root.wheel $(SRCROOT); \
  155.     fi
  156.  
  157. installhdrs: DSTROOT
  158.  
  159.  
  160. DSTROOT:
  161.     mkdirs $(DSTROOT)
  162.  
  163.  
  164. SRCROOT:
  165.     @if [ -n "${$@}" ]; \
  166.     then \
  167.         exit 0; \
  168.     else \
  169.         echo Must define $@; \
  170.         exit 1; \
  171.     fi
  172.  
  173. build_c++filt:  
  174.     (cd $(SRCROOT)/c++filt; \
  175.         $(MAKE) build \
  176.             SYMROOT="$(SYMROOT)" \
  177.             SRCROOT="$(SRCROOT)" )
  178.  
  179. install_c++filt:  
  180.     (cd $(SRCROOT)/c++filt; \
  181.         $(MAKE) install \
  182.             SYMROOT="$(SYMROOT)" \
  183.             DSTROOT="$(DSTROOT)" \
  184.             SRCROOT="$(SRCROOT)" )
  185.  
  186. build_bison: $(OBJROOT)/bison_`arch`_obj/Makefile
  187.     (cd $(OBJROOT)/bison_`arch`_obj; \
  188.         make CFLAGS="${RC_CFLAGS}" \
  189.         LDFLAGS="${RC_CFLAGS}" )
  190.         
  191. $(OBJROOT)/bison_`arch`_obj:
  192.     mkdirs $(OBJROOT)/bison_`arch`_obj
  193.  
  194. $(OBJROOT)/bison_`arch`_obj/Makefile: $(OBJROOT)/bison_`arch`_obj
  195.     (cd $(OBJROOT)/bison_`arch`_obj; $(SRCROOT)/bison/configure)
  196.         
  197. install_bison: build_bison
  198.     mkdirs $(DSTROOT)/usr/local
  199.     (cd $(OBJROOT)/bison_`arch`_obj; \
  200.     $(MAKE) install \
  201.     CFLAGS="${RC_CFLAGS}" \
  202.         LDFLAGS="${RC_CFLAGS}" \
  203.         prefix="$(DSTROOT)/usr/local")
  204.  
  205. clean_bison:
  206.     -(cd $(OBJROOT)/obj.bison; $(MAKE) clean)
  207.  
  208.